Method for estimating angular errors of angle coders in precision rotary devices, device

ABSTRACT

Disclosed is a method for estimating angular errors of coders for a looped system including a rotating actuator and an angle coder producing a position measurement signal, and including a calculation device controlling the actuator, the calculation device receiving a setpoint signal, as well as the measurement signal, for looping, the calculation device calculating in a corrector a control signal. In a test phase, a specific corrector Cωrj(q) is synthesised for constant rotation speed ωrj, the corrector having substantially zero gain at the frequency and harmonics, resulting in opening the loop at the frequencies, a matrix relation is established between position measurements and a function of parameters characterizing the coder errors and the torque ripples, the test phase repeats with different speeds, the matrix relations are concatenated producing an identifiable global matrix relation, the encoder error and torque ripple parameters are estimated by resolution of the global matrix relation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is the U.S. national phase of International Application No. PCT/EP2021/062492 filed May 11, 2021 which designated the U.S. and claims priority to FR 2004817 filed May 15, 2020, the entire contents of each of which are hereby incorporated by reference.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention generally relates to the field of precision servo equipment comprising controlled rotation actuators, in particular motion simulators and centrifuges. It more particularly relates to a method for estimating angular errors of angle coders in precision rotary devices as well as a device comprising means for implementing the method.

Description of the Related Art

Motion simulators are known, which are high-precision devices intended to subject in particular components or inertial systems to perfectly controlled movements in order to test them.

Motion simulators may be single- or multi-axes and each axis is driven by one or more motors, most often electric motors, and whose angular position is controlled by means of a closed-loop control device. The control algorithm generally generates a current command proportional to a torque command, which is a setpoint for the power electronic stage associated to the motor. This control algorithm receives a setpoint that may be a position, and/or a speed and/or an angular acceleration of the axis to be controlled and also uses, directly or indirectly, a measurement of angular position of the controlled axis. This angular position fed back to the control is generally measured by an angle coder. These coders may be optical or inductive or capacitive or magnetic coders.

The typical block-diagram of the control loop corresponding to an axis of a motion simulator is shown in FIG. 1 . Variants are possible as regards the control law: the control law may be provided with a “feedforward” action, making the setpoint act directly on the control, possibly through a filter. Likewise, in addition to the position setpoint, there may be speed and acceleration setpoints in the structure. In alternative embodiments, the angular position measured is derived before arriving to the corrector, the setpoint being then a speed setpoint possibly associated with an acceleration setpoint. The structure of the closed loop for controlling a centrifuge axis is the same, with also the same possible alternative embodiments.

For various reasons, the angular position measurements provided by these coders are necessarily subject to errors. These errors may be of random nature, due to noises in the signal processing devices of the system, but a significant part of the measurement errors is of deterministic nature. When the error is deterministic, this error between the real position of the axis and the measurement provided by the coder is repeatable for each position of the axis.

Currently, the measurement errors of the angular coders are the predominant source of error of the controlled position of the machine.

In the state of the art, these deterministic angular errors of the position coder of the machine are evaluated by means of an optical device external to the simulator, consisted of an interferometer that receive the beams from a laser source reflected by a polygonal mirror attached to the axis of the motion simulator. The angles between the sides of the polygonal mirror are known with a great accuracy by a previous calibration. Evaluating the angular deviations of the beams reflected by each side of the mirror when the machine axis is controlled to a known setpoint position makes it possible to estimate with an accuracy generally lower than one second of arc the angular errors of the coder, for a setpoint position of the axis. The number of sides of the polygonal mirror being reduced, most often 8 sides, the number of positions of the machine axis for which we have the coder error is thus limited. These measurements nevertheless allow establishing correction tables on a complete rotation by interpolation of the known coder errors on this limited number of positions. Nevertheless, this interpolation does not allow ensuring a sufficiently accurate position correction as generally required for testing inertial systems at positions for which an optical measurement is not possible.

In any case, when a table of the coder angular errors has been established by the above evaluation, it is possible to introduce into the control loop a compensation table whose compensation is the opposite of the estimated coder error, this compensation table being inserted downstream from the raw measurement provided by the coder, in order to provide the control with a compensated angular position. Such a control loop is shown in FIG. 2 .

In order to have an accurate estimation of the coder error on the 27 radians of the axis, certain “autonomous” methods, i.e. without the use of an optical method, for determining the coder error have been developed for rotary axes. In particular, mention can be made to the method developed in the article “On-axis self-calibration of angle encoders” whose authors are X. D. Lu, R. Graetz, D. Amin-Shahidi, and K. Smeds, in CIRP annals, vol. 59 (2010). The matter is here to observe the signal provided by the coder when the axis is in deceleration, the control being deactivated, at a relatively high speed over an angular range of generally 47 radians. The undulations of the angular position around a quasi-continuous component of the position (generally modelled by an arc of parabola on this range) give information about the measurement errors of the coders.

This method, whose principle is simple, has for advantage to provide an estimation of deterministic error of the coder over 360°.

However, it can be observed that the tests carried out by the authors mentioned above require making the test when the control is deactivated, and implement a rotary device consisted of an air bearing, so as to minimise the friction as much as possible. Now, if the friction effects are generally represented by deterministic models (many of them exist, Coulomb, Dahl, Lugre . . . ) as a function of the speed, the fact remains that these frictions result from a very great number of phenomena at atomic scale, which means that in practice, these frictions have, in part, a random behaviour when the axis of the simulator operates at a given speed.

Now, the motion simulators and centrifuges are generally equipped with ball bearing, and the effective random disturbances due to the real frictions are thus far more significant than in the experience of the above-mentioned article.

For that reason, the method presented in this article is not transposable to the case of motion simulators because, due to the random disturbances resulting from the frictions, it would lead to estimations of the coder errors subject to uncertainties of such a level that these estimations would not be usable.

In order to reduce the uncertainties, it could be imagined to use the above method with an increased number of rotations on which the estimation is made due to the fact that having more information makes it possible to mitigate the uncertainties on the estimates. However, we then come up against the fact that the test is made in deceleration phase and, above all, without control, i.e. in open loop, and the user has thus no control on the test duration. In practice, the user won't have a sufficient duration of deceleration to obtain a good accuracy of the estimates.

It would be desirable to have at disposal a method for estimating the coder errors where the measurements during the test phase could last as long as desired, in order to obtain a high enough quantity of acquired information, making it possible to significantly reduce the estimation uncertainties.

That is what proposes the method of the invention in which the system is stimulated/excited and position measurements are made to estimate the errors of the coders on the system that is and remains in closed loop, just as it is in the subsequent phase of use of the system, that is to say when the position control is active in such a way as not to be constraint by the natural deceleration of the axis.

However, making these measurements to estimate the errors of the coders on a closed-loop system causes certain specific difficulties that are explained in the detailed disclosure part of the invention and that are overcome by the invention.

The following documents are also known: U.S. Pat. No. 5,138,564 A; by WANG YAN ET AL: “Study on self-calibration angle encoder using simulation method”, BIOMEDICAL PHOTONICS AND OPTOELECTRONIC IMAGING (SOCIETY FOR OPTICAL ENGINEERING) vol. 9903, ISBN: 978-1-62841-832-3; and by VAU BERNARD ET AL: “An improved control structure for the tracking of sine command in a motion simulator”, PROCEEDINGS OF SPIE; vol. 11057, ISBN: 978-1-5106-3927-0.

SUMMARY OF THE INVENTION

In order to remedy the above-mentioned drawbacks, the present invention proposes a method for estimating angular errors of angle coders for a looped/controlled system including at least one actuator for rotating an axis and an angle coder producing a signal of position measurement of said axis, and including a calculation device for at least controlling said actuator,

the calculation device receiving, on the one hand, a setpoint signal at the system input, in particular a position setpoint signal y_(c)(t) and, on the other hand, the measurement signal, for looping/controlling the system, the rotation actuator generating torque undulations d_(m)(t), the coder producing coder errors d_(c)(t) which, for a setpoint signal y_(c)(t) that corresponds to a rotation of the axis at a speed ω_(r) supposed to be constant, have a spectrum consisted of the fundamental rotation frequency ω_(r) and its harmonics kθ_(r), kϵ

, the calculation device calculating a command signal in a corrector, wherein, in a test phase, for a speed of rotation indexed j, ω_(rj), supposed to be constant, a specific corrector C_(ω) _(rj) (q) of said constant speed of rotation ω_(rj) is synthetized, said corrector C_(ω) _(rj) (q) being such that, for the frequency domain comprising the fundamental frequency or; and a determined number of its first harmonics kω_(rj), kϵ

, 1<k≤N_(l), the corrector having a substantially zero gain at theses frequencies ω_(rj), kω_(rj), which causes an opening of the loop at said frequencies, and a matrix relationship is established between the position measurements and a function of parameters characterizing the coder errors and the torque undulations, on the system with the specific corrector and at the constant speed of rotation ω_(rj),

the test phase is repeated a determined number n of times with different setpoints of rotation at speed or; supposed constant, where jϵ

, 1<j≤n,

the matrix relationships are concatenated in order to obtain an identifiable global matrix relationship,

the parameters characterizing the coder errors and the torque undulations are estimated by solving the global matrix relationship.

The term “supposed” qualifying the speed in the definition of the setpoint signal y_(c)(t) is used to mean that a setpoint is used, in particular a ramp for a position setpoint, which, in the absence of any defect in the system, would give a constant measurement of speed of rotation of the axis but which actually gives a speed measurement that is disturbed, in particular, by the coder errors and the torque undulations, and that it is not searched here to send a setpoint countering these errors and torque undulations.

Other non-limiting and advantageous features of the method according to the invention, taken individually or according to all the technically possible combinations, are the following:

-   -   the speed of rotation of the axis is expressed in rad/s,     -   moreover, once estimated the parameters characterizing the coder         errors and the torque undulations, the calculation device is         configured for the execution in real time of the calculation of         a coder error compensation signal in order to compensate for the         coder errors,     -   the calculation device is moreover configured to take into         account the torque undulations in real time and to correct them,     -   the calculation of the coder error compensation signal is         performed in a compensation calculation block of the calculation         device,     -   a range [ω_(low), ω_(high)] of rotation frequency of the         actuator in which the axis transfer function module has a         decrease of substantially 40 dB/decade is previously determined,     -   in the test phases, the different rotation speeds ω_(rj) are         further chosen in such a way that each constant rotation speed         ω_(rj) and its N_(l) harmonics kω_(rj) are in the range         [ω_(low), ω_(high)],     -   the range [ω_(low), ω_(high)] of rotation frequency of the         actuator in which the axis transfer function module has a         decrease of substantially 40 dB/decade is determined by a method         chosen among:

a graphical method using the curve of the gain

${G\left( e^{i\omega} \right)} = {❘\frac{B\left( e^{i\omega} \right)}{A\left( e^{i\omega} \right)}❘}$

of the axis transfer function and wherein a lower limit ω_(low) and an upper limit ω_(high) of frequencies surrounding an area of the curve having a decrease of substantially 40 dB/decade are determined,

an identification method, in particular parametric,

-   -   in the test phase, the setpoint at the system input is a ramp         position setpoint signal y_(c)(t), or a constant speed setpoint         signal,     -   in the test phase, the ramp position setpoint signal y_(c)(t)         increases over time,     -   in the test phase, the ramp position setpoint signal y_(c)(t)         decreases over time,     -   the number N_(l) of harmonics kω_(rj) is identical for the n         tests with rotation setpoints at different speeds ω_(rj),     -   the corrector is synthetized either by a mixed-sensitivity         method on a H-infinity control, or by a robust pole placement         method on RST corrector,     -   the matrix relationship between the position measurements and a         function of parameters characterizing the coder errors and the         torque undulations is expressed by:

Y_(j) = ϕ_(j)θ + D_(j) ${{with}\phi_{j}} = {{\begin{bmatrix} {\varphi(0)} \\ {\varphi(1)} \\  \vdots \\ {\varphi\left( t_{f} \right)} \end{bmatrix}Y_{j}} = \begin{bmatrix} \begin{matrix} \begin{matrix} {y_{m}^{\prime}(0)} \\ {y_{m}^{\prime}(1)} \end{matrix} \\  \vdots  \end{matrix} \\ {y_{m}^{\prime}\left( t_{f} \right)} \end{bmatrix}}$

where Y_(j) is a vector of centred position measurements of coefficients y′_(m)(t), and

$\begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} {{\varphi(t)} = \left\lbrack {\cos\left( {y_{m}(t)} \right)} \right.} & {\sin\left( {y_{m}(t)} \right)} \end{matrix} & {\cos\left( {2y_{m}(t)} \right)} \end{matrix} & {\sin\left( {2y_{m}(t)} \right)} \end{matrix} & {\ldots\frac{1}{\left( \omega_{r} \right)^{2}}{\cos\left( {y_{m}(t)} \right)}\ldots} \end{matrix} & {\frac{1}{\left( \omega_{r} \right)^{2}}\sin\left( {y_{m}(t)} \right)} \end{matrix} & {\frac{1}{\left( {2\omega_{r}} \right)^{2}}\cos\left( {2y_{m}(t)} \right)} \end{matrix} & \left. {\frac{1}{\left( {2\omega_{r}} \right)^{2}}{\sin\left( {2{y_{m}(t)}} \right)}\ldots} \right\rbrack \end{matrix}{and}$ $\theta^{T} = \begin{bmatrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} a_{1} & b_{1} \end{matrix} & a_{2} \end{matrix} & b_{2} \end{matrix} & \ldots \end{matrix} & \alpha_{1}^{\prime} \end{matrix} & \beta_{1}^{\prime} \end{matrix} & \alpha_{2}^{\prime} \end{matrix} & \beta_{2}^{\prime} \end{matrix} & \ldots \end{bmatrix}$

a transposed vector of the parameters characterizing the coder errors and the torque undulations, and D_(j) a vector of centred disturbance terms,

-   -   the vector Y_(j) is a column vector,     -   the identifiable global matrix relationship Y=ϕθ+D

with:

$Y = {{\begin{bmatrix} Y_{1} \\ Y_{2} \\  \vdots \\ Y_{n} \end{bmatrix}\phi} = \begin{bmatrix} \phi_{1} \\ \phi_{2} \\  \vdots \\ \phi_{n} \end{bmatrix}}$

is used to produce an estimation a of the parameters characterizing the coder errors and the torque undulations by linear regression and application of a least squares relationship according to {circumflex over (θ)}=(ϕ^(T)ϕ)⁻¹ϕ^(T)Y,

-   -   the estimation {circumflex over (θ)} of the vector θ of the         parameters characterizing the coder errors and the torque         undulations is calculated by iteration,     -   the estimation {circumflex over (θ)} of the vector θ of the         parameters characterizing the coder errors and the torque         undulations is calculated by iteration: after a first repetition         of test phases and a first calculation of the parameters         characterizing the coder errors and the torque undulations by         solving the global matrix relationship, a first estimated vector         {circumflex over (θ)}₁ is estimated, the coder error         compensation signal being then calculated and the torque         undulations being then taken into account on the basis of said         first estimated vector {circumflex over (θ)}₁, a new repetition         of test phases and a new calculation of the parameters         characterizing the coder errors and the torque undulations by         solving the global matrix relationship are performed on the         system so-compensated on the basis of said first estimated         vector {circumflex over (θ)}₁, a new estimated vector         {circumflex over (θ)}₂ being estimated, the coder error         compensation signal being then calculated and the torque         undulations being then taken into account on the basis of the         sum of the previous estimated vector {circumflex over (θ)}₁ and         the new estimated vector {circumflex over (θ)}₂, and subsequent         iterations are performed on the compensated system on the basis         of the sum of the previous estimated vectors {circumflex over         (θ)}₁+{circumflex over (θ)}₂+{circumflex over (θ)}₃ . . .     -   in the case where an estimation {circumflex over (θ)} of the         vector θ of the parameters characterizing the coder errors and         the torque undulations is calculated by iteration, an iteration         stop criterion is set,     -   the identifiable global matrix relationship Y=ϕθ+D

with:

$y = {{\begin{bmatrix} Y_{1} \\ Y_{2} \\  \vdots \\ Y_{n} \end{bmatrix}\phi} = \begin{bmatrix} \phi_{1} \\ \phi_{2} \\  \vdots \\ \phi_{n} \end{bmatrix}}$

is used to produce an estimation a of the parameters characterizing the coder errors and the torque undulations and with a regularization method using the following relationship:

{circumflex over (θ)}=(ϕ^(T) ϕ+H)⁻¹ϕ^(T) Y

where H is a square matrix defined positive of the size of ϕ^(T)ϕ

-   -   an interferometric optical measurement method is implemented for         measuring the coder position errors, said measurements being         made on a finite number n_(p) of positions of the axis, and the         estimation {circumflex over (θ)} of the parameters         characterizing the coder errors and the torque undulations is         obtained by minimizing a quadratic criterion J=(Y−ϕθ)^(T)(Y−ϕθ)         under the equality constraint E_(c)=Cθ, where C is a matrix such         that

$C = \begin{bmatrix} {\cos\left( y_{1}^{\star} \right)} & {\sin\left( y_{1}^{\star} \right)} & \ldots & {\cos\left( {Ny}_{1}^{\star} \right)} & {\sin\left( {Ny}_{1}^{\star} \right)} & 0_{1,N_{l}} \\  \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {\cos\left( y_{n_{p}}^{\star} \right)} & {\sin\left( y_{n_{p}}^{\star} \right)} & \ldots & {\cos\left( {Ny}_{n_{p}}^{\star} \right)} & {\sin\left( {Ny}_{n_{p}}^{\star} \right)} & 0_{1,N_{l}} \end{bmatrix}$

y*_(i) corresponding to the n_(p) measurement positions on the axis, iϵ[1, . . . n_(p)],

and N is the maximum harmonic rank of a Fourier series decomposition of the coder errors,

-   -   certain harmonics kω_(rj) are omitted for the estimation of the         parameters characterizing the coder errors and the torque         undulations,     -   the omitted harmonics kω_(rj) are intermediate harmonics,     -   all the harmonics kω_(rj) are used for the estimation of the         parameters characterizing the coder errors and the torque         undulations,     -   the determination by identification of the axis transfer         function is performed on the looped system,     -   the determination by identification of the axis transfer         function is performed on the system that is placed in a         non-looped configuration.

The invention also proposes a device having at least one rotary axis, said device being a motion simulator or a centrifuge and including a looped/controlled system including at least one actuator for rotating the axis and an angle coder producing a position measurement signal of said axis, and including a calculation device for at least controlling said actuator, and including a calculation device for at least controlling said actuator, the calculation device receiving, on the one hand, a setpoint signal at the system input, in particular a position setpoint signal y_(c)(t) and, on the other hand, the measurement signal, for looping/controlling the system, the rotation actuator generating torque undulations d_(m)(t), the coder producing coder errors d_(c)(t) which, for a setpoint signal y_(c)(t) that corresponds to a rotation of the axis at a speed supposed to be constant ω_(r), have a spectrum consisted of the fundamental rotation frequency ω_(r) and its harmonics kω_(r), kϵ

, the calculation device further calculating a command signal in a corrector, the calculation device being configured to execute the method of the invention in order to estimate parameters characterizing the coder errors and the torque undulations.

Preferably, in the device, the calculation device is moreover configured, once estimated the parameters characterizing the coder errors and the torque undulations, to allow the real time calculation, in a compensation calculation block, of a coder error compensation signal in order to compensate for the coder errors according to the method of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The following description in relation with the appended drawings, given by way of non-limiting examples, will allow a good understanding of what the invention consists of and of how it can be implemented.

In the appended drawings:

FIG. 1 shows as a block-diagram a state-of-the-art closed-loop system for controlling an axis of a state-of-the-art motion simulator,

FIG. 2 shows the state-of-the-art system of FIG. 1 , but including in addition a state-of-the-art position compensation block for compensating for the angular coder errors,

FIG. 3 shows as a block-diagram a closed-loop/controlled system of a motion simulator axis, making it possible to visualize the sources of spatially periodic disturbances of the sensor (coder error) and of the actuator (typically: torque undulations/“cogging”), which is generally an electric motor,

FIG. 4 shows the curve of the module of the direct sensitivity function according to the Bode representation for a typical closed-loop/controlled system of a motion simulator axis,

FIG. 5 shows a typical example of amplitude and phase Bode diagram of the transfer function of the rotary axis,

FIG. 6 shows as a block-diagram the closed-loop/controlled system of a motion simulator axis, with a compensation calculation block obtained by the method of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The specific difficulties met and the way they have been solved in practice, as well as the different ways to implement the proposed solution will now be described, which will allow a good understanding of the invention.

The controlled axis is driven in rotation by an actuator, typically a motor, and is subjected to two types of spatially periodic disturbances:

-   -   The disturbances linked to the defects of the motor, and which         are commonly called “cogging” or torque undulations, are         disturbances depending on the position of the axis.     -   The disturbances linked to the measurement errors of the angular         coder, which are also spatially periodic and which are those         that are desired to be estimated.

To these spatially periodic disturbances are added various disturbances, for example disturbances linked to the frictions that have a deterministic component and a random component.

As regards the angle coder:

Let y(t) be the physical position of the axis at instant t and y_(m)(t) the measured position as provided by the angle coder. The coder errors act additively on the position y(t), and are spatially periodic, hence decomposable into Fourier series, so that it can be written:

y _(m)(t)=y(t)+Σ_(k=1) ^(N) [a _(k) cos(y(t))+b _(k) sin(y(t))]  (1)

In this formula, abstraction is made of the random disturbances, that is to say they are not characterized.

It is supposed that the maximum harmonic rank denoted N is finished, which corresponds in practice to the fact that the harmonics of higher and higher rank have a weaker and weaker disturbing effect and may be neglected. The a_(k),b_(k) characterizing the coder errors are terms of a Fourier series and are real scalar values.

As regards the axis rotation actuator, typically a motor:

Let u(t) be the motor torque, supposed to be non-subjected to disturbances, as coming from the control, and u_(e)(t) the effective/real torque acting on the axis. If only spatially periodic torque disturbances are considered, then the relationship between u(t) and u_(e)(t) is given by:

u _(e)(t)=u(t)+Σ_(k=1) ^(N)[α_(k) cos(y(t))+β_(k) sin(y(t))]  (2)

This relationship is valid if the proper dynamics of the current control loops managed by the motor amplifier are neglected, which is justified by the high bandwidth of these current loops with respect to the frequencies of the motor disturbances and the motor errors involved here.

From this equation (2), it is also possible to model an unbalance torque, which is also sinusoidal over 2π radians, i.e. for k=1. The block-diagram of the disturbed closed loop is shown in FIG. 3 in which the parameters are the following:

y_(c)(t): position setpoint,

y(t): physical/real position (non accessible),

y_(m)(t): position measured by the coder,

d_(c)(t): coder error,

d_(m)(t): torque undulations or “cogging”,

u(t): torque command signal provided by the corrector and that corresponds to the motor torque by supposing it non subjected to disturbances and as coming from the control,

u_(e)(t): effective/real torque, this torque being disturbed by the torque undulations or “cogging”,

G(q): operator of the axis transfer function,

C(q): operator of the corrector transfer function,

q: advance operator of a sampling period, the method implementing a sampled system of the measurements and the calculations, the calculations being performed by a typically programmable calculator, in particular of the microprocessor type. The corrector and axis transfer functions are hence represented in discrete time.

The relationship between d_(c)(t), d_(m)(t) and y_(m)(t) is given by the following relationship:

$\begin{matrix} {{y_{m}(t)} = {{\frac{1}{1 + {{C(q)}{G(q)}}}{d_{c}(t)}} + {\frac{G(q)}{1 + {{C(q)}{G(q)}}}{d_{m}(t)}} + {\overset{\_}{y}(t)}}} & (3) \end{matrix}$

where y(t) would be the physical position of the axis non subjected to torque disturbances.

In this relationship (3), d_(c)(t) depends on y(t) and d_(m)(t) depends indirectly on y(t). Based on this relationship (3), it is observed that when the corrector is active, the effect of d_(c)(t) on y_(m)(t) acts via the direct sensitivity function:

${{S_{y_{m}d_{c}}(q)} = \frac{1}{1 + {{C(q)}{G(q)}}}},$

and

the effect of d_(m)(t) on y_(m)(t) acts via the sensitivity function:

${S_{y_{m}d_{m}}(q)} = {\frac{G(q)}{1 + {{C(q)}{G(q)}}}.}$

The effect of the coder errors on the position provided by said coder is indirect in closed loop, because it depends on the direct sensitivity function S_(y) _(m) _(d) _(c) (q). Thus, applying the method of the article Lu et al. (2010) could only lead to a strongly erroneous (biased) estimation, even in case of low random disturbances. So, it is necessary to develop a method for estimating the coder errors that take into account the specificity of the closed-loop operation of the system.

Now, if the corrector transfer function is generally known with certainty, the axis transfer function G(q) is, to a certain extent, uncertain. As a first approximation, this function results from the second Newton law, and that way, in a significantly wide frequency range, it is noted that the gain of G(q) decreases by 40 dB/decade, which is the hallmark of a dual integrator.

Nevertheless, this property of decrease by 40 dB/decade is not verified at low frequency, where the gain decrease tends asymptomatically to 20 dB/decade due to the viscous frictions, nor at high frequency, where structure resonances and anti-resonances appear.

As G(q) is not known with certainty, it is the same for S_(y) _(m) _(d) _(c) (q). Thus, any estimation of d_(c)(t) based on y_(m)(t), using a theoretical expression of S_(y) _(m) _(d) _(c) (q) might be source of estimation errors. It is therefore necessary that, at the frequencies at which occur the effects of d_(c)(t), the direct sensitivity function S_(y) _(m) _(d) _(c) (q) has a gain and a phase that are known with certainty, and that despite the uncertainties on G(q), which causes specific difficulties and requires the implementation of a new corrector synthesis method that is specific to the use of the closed-loop system for estimating the angle coder error.

By way of example, FIG. 4 shows the typical module that the direct sensitivity function S_(y) _(m) _(d) _(c) may have as a function of the speed or frequency of rotation (these deux terms being considered equivalent) in rad/s. It can be seen that its module is equal to 0 dB only at high frequency. For lower frequencies, the gain of the direct sensitivity function is different from 1, and hence, at these lower frequencies, this sensitivity function causes bias on the estimation of d_(c)(t) if the estimation method described in the above-mentioned article of X. D. Lu et al. (2010) is used.

The method for estimating the angle coder errors on a closed-loop/controlled system as proposed by the invention will now be described.

For these explanations, it is supposed that the corrector implemented is of the RST type. However, in other embodiments, other types of correctors can be used, all the more so since the RST corrector is the most general form of single-variable corrector, and all the other corrector structures can come down thereto.

In case of equipment with several axes, each axis implements its own method according to the invention.

For this generic RST corrector structure, the command obtained by C(q) is written:

$\begin{matrix} {{u(t)} = {{{- \frac{R(q)}{S(q)}}{y_{m}(t)}} + {\frac{T(q)}{S(q)}{y_{c}(t)}}}} & (4) \end{matrix}$

In FIG. 3 , which is a particular case of implementation, implicitly T(q)=R(q). The parameters R(q),S(q), T(q) are polynomials in q, S(q) being a monic polynomial. The transfer operator representing the real system is expressed as a fraction of two polynomials B(q⁻¹) and A(q⁻¹), the latter polynomial being monic, such that:

$\begin{matrix} {{G(q)} = \frac{B(q)}{A(q)}} & (5) \end{matrix}$

The proposed method for characterizing d_(c) (coder error) consists in performing tests on the system that is and remains physically in closed loop. It is reminded that the system includes calculation and control means, the rotation actuator and a sensor, and that it receives a setpoint that is here a position setpoint to simplify the explanations but it could receive one/several setpoints of other types, position and/or speed and/or acceleration.

During these tests, a position setpoint is applied, which is such that it amounts to require that the axis rotates at constant speed. It is reminded that the speed is the derivative of the position and this means that the position setpoint imposed to the system is a ramp.

Under these conditions of ramp-shaped position setpoint, the coder errors appear as temporally quasi-periodic disturbances due to the obtained speed of the axis that is quasi-constant and to the periodicity of the disturbance coming from the angle coder errors.

It is supposed that the system and its control law have together systematically at least two integrators, which makes it possible to follow the speed setpoint without lagging error according to the final value theorem.

Let's note ω_(r) the speed of rotation of the axis (in rad/s), we have then:

y _(m)(t)=ω_(r) t+y(0)+d(t)  (6)

where d(t) is the whole disturbances of the axis brought back to y(t) and with d(t) which has a zero mean.

Under those conditions, it may be written:

d _(c)(t)≈Σ_(k=1) ^(N) [a _(k) cos(y(t))+b _(k) sin(y(t))]+d′(t)  (7)

where d′(t) is a zero-mean term that will be neglected in the following.

It is observed that, based on the shape of the typical direct sensitivity function curve shown in FIG. 4 , that

$❘\frac{1}{1 + {{C\left( e^{i\omega} \right)}{G\left( e^{i\omega} \right)}}}❘$

tends to 1 in high frequency if the gain of the open-loop system is close enough to 0, which requires a significant “roll-off” of the high-frequency corrector.

It is deduced therefrom that for high enough values of kω_(r), the direct sensitivity function has for module

${{❘\frac{1}{1 + {{C\left( e^{i\omega} \right)}{G\left( e^{i\omega} \right)}}}❘}_{k\omega_{r}} \approx 1},$

and the “closed-loop” effect is then negligible at these high frequencies and, at these frequencies, it is as if the loop were open whereas it is physically closed.

However, it is not the same for the harmonics of low ranks in formula (7), hence for lower frequencies that do not allow this “loop opening” and that are those which are desired to be estimated in priority due to the fact that they are dominant as regards their power.

Also, to robustly avoid the effect of the direct sensitivity function S_(y) _(m) _(d) _(c) , it is proposed to synthesize for each speed of rotation ω_(r) a specific corrector denoted

${{C_{\omega_{r}}(q)} = \frac{R_{\omega_{r}}(q)}{S_{\omega_{r}}(q)}},$

which is such that it “opens the loop” locally in the frequency domain at the fundamental frequency ω_(r) and its first harmonics kω_(r), kϵ

, 1<k≤N_(l), N_(l) being the maximum rank of the harmonics that are desired to be estimated. This maximum rank N_(l) corresponds in practice to the first harmonics contributing to a non-negligeable level of error and that, as will be seen, will be such that the harmonic of maximum rank, N_(l)ω_(r), is lower than or equal to a maximum frequency ω_(high).

If C_(ω) _(r) (q) opens the loop at the frequencies ω_(r), 2ω_(r), . . . N_(l)ω_(r), then by definition |C_(ω) _(r) (e^(jω))=0 and, therefore, we have robustly for the direct sensitivity function module,

${❘\frac{1}{1 + {{C\left( e^{i\omega} \right)}{G\left( e^{i\omega} \right)}}}❘}_{\underset{1 \leq k \leq N_{l}}{\omega = {k\omega_{r}}}} = 1.$

Under these conditions, the frequency components of d_(c)(t) (coder error) of frequencies ω=kω_(r), 1<k≤N_(l) have a direct effect on y_(m)(t), without being affected by the direct sensitivity function.

Also, for a test performed at a known constant setpoint speed or, a corrector having a gain with notches at the frequencies kω_(r) could be implemented.

However, contrary to what could be thought at first sight, it is not sufficient to add notch filters at the frequencies multiple of ω_(r): Indeed, forcing a zero gain of the corrector at a given frequency amounts, as seen hereinabove, to force the direct sensitivity function S_(y) _(m) _(d) _(c) to have a gain equal to 1 at these frequencies. Now, it is well known that the direct sensitivity function module

${❘{S_{y_{m}d_{c}}\left( e^{j\omega} \right)}❘} = {❘\frac{1}{1 + {{C\left( e^{i\omega} \right)}{G\left( e^{i\omega} \right)}}}❘}$

is subjected to a conservation principle issuing from the Bode theorem that, in the case where the open loop has no instable pole, is written:

$\begin{matrix} {{\int_{- \frac{\pi}{T_{e}}}^{+ \frac{\pi}{T_{e}}}{\log{❘\frac{1}{1 + {{C\left( e^{i\omega} \right)}{G\left( e^{i\omega} \right)}}}❘}d\omega}} = 0} & (8) \end{matrix}$

Therefore, with such a filtering, the forcing of

$❘\frac{1}{1 + {{C\left( e^{i\omega} \right)}{G\left( e^{i\omega} \right)}}}❘$

to 1 at a given frequency causes an alteration of this direct sensitivity function at other frequencies, and in particular it may lead to an increase, which may be inacceptable for the robustness of the closed loop, of this direct sensitivity function module, by reducing in particular the module margin. It is reminded that the module margin is the inverse of the maximum of |S_(y) _(m) _(d) _(c) (e^(jω))|.

For that reason, it is necessary to implement another corrector synthesis method to allow “opening the loop” at the frequencies kω_(r) that have an interest for characterizing the coder error d_(c)(t), while keeping good robustness in terms of static and dynamic margins. Several corrector synthesis methods exist, which may be used to obtain this result.

A method adapted to H-infinity control, by application of the so-called mixed sensitivity method that consists in imposing templates in the frequency domain to the gains of the various sensitivity functions of the loop, the synthesis algorithm operating to find a corrector that best satisfies these various constraints. This method is perfectly usable and suitable in the present context. Reference may be made for that purpose to D. Alazard et al., “Robustesse et commande optimale”, CEPADUES, 1999.

However, we prefer describing here a method of RST corrector synthesis by robust pole placement, which has for advantage to offer the best simplicity-to-performance compromise.

In the following, we do not dwell on the calculation of block T(q) insofar as it does not affect the loop performances from the regulation point of view. This type of calculation is known and reference may be made for that purpose to the book I.D. Landau, “Commande des systémes”, Hermes, 2002.

Therefore, the corrector synthesis problem almost comes down to the synthesis of the polynomials R(q) and S(q) which are the unknowns of the problem.

These polynomials are obtained by solving a Bézout equation:

A(q)S(q)+B(q)R(q)=P(q)  (9)

The polynomial P(q) which is the characteristic polynomial of the closed loop is the product of three monic polynomials such that

P(q)=P _(o)(q)P _(c)(q)P _(r)(q)

with: d^(o)(P_(o))=d^(o)(A)+1, d^(o)(P_(c))=d^(o)(B).

Moreover, fixed parts are imposed to S(q) and R(q) with:

S(q)=H_(s)(q)S′(q) and R(q)=H_(r)(q)R′(q), with d^(o)(H_(r))=d^(o)(P_(r)).

In order to reject the static disturbances, an integral action is also imposed in the corrector, which amounts to take H_(s)(q)=q−1.

Moreover, the transfer operator

$\frac{H_{r}(q)}{P_{r}(q)}$

is the series connection of second order resonant dipoles

$\frac{H_{r}(q)}{P_{r}(q)} = {{\frac{H_{r1}(q)}{P_{r1}(q)} \cdot \frac{H_{r2}(q)}{P_{r2}(q)}}\ldots\frac{H_{{rN}_{l}}(q)}{P_{{rN}_{l}}(q)}}$

where

$\frac{H_{rk}(z)}{P_{rk}(z)}$

is the transform in z of the continuous resonant dipole:

$\frac{\frac{s^{2}}{\left( {k\omega_{r}} \right)^{2}} + {2\frac{\xi_{nk}}{\left( {k\omega_{r}} \right)}} + 1}{\frac{s^{2}}{\left( {k\omega_{r}} \right)^{2}} + {2\frac{\xi_{dk}}{\left( {k\omega_{r}} \right)}} + 1}$

with 0≤ξ_(nk)<1, 0<ξ_(dk)≤1, preferably ξ_(nk) is chosen equal to 0 or very close.

This method consisting in opening the loop at predetermined frequencies is described in the book of I.D. Landau, “Commande des systémes”, Hermes, 2002. It can be noted that this method is a dual one to that consisting in rejecting harmonic disturbances at one or more given frequencies, which has been the subject of a patent application EP 2116912 entitled “Method and device for robust periodic disturbance rejection in an axis position loop”. Nevertheless, the object of the present application is to make the corrector fully blind to sinusoidal disturbances, whereas, on the contrary, in patent EP 2116912, the corrector must react perfectly to these disturbances in order to fully compensate for them. And hence, the object of the present application is antagonist with respect to that of the application EP 2116912.

Moreover, the choice of the polynomials P_(o)(q),P_(c)(q) is preferably made by application of the so-called “ppa” and “ppb” methods and described in the book “Automatique appliquée”, Hermes, 2009, by Philippe de Larminat. These functions have setting parameters to arbitrate the compromises inherent in the corrector synthesis.

The identification procedure will now be described.

As mentioned hereinabove, the torque undulations d_(m)(t) whose expression is given in formula (2) appear through the sensitivity function

${{S_{y_{m}d_{m}}(q)} = \frac{G(q)}{1 + {{C(q)}{G(q)}}}},$

but thanks to the “loop opening” at the frequencies kω_(r), 1≤k≤N_(l), and which is obtained by a corrector synthesis configured for the speed at which rotates the axis, causing the forcing of

$❘\frac{1}{1 + {{C\left( e^{i\omega} \right)}{G\left( e^{i\omega} \right)}}}❘$

to 1, at the frequencies ω_(r), 2ω_(r) . . . we have robustly S_(y) _(m) _(d) _(c) (e^(iω))=G(e^(iω)).

Now, it is known, as already mentioned, that for a rather wide range of axis rotation frequencies of precision rotary devices, such as motion simulators and centrifuges, the gain

${❘{G\left( e^{i\omega} \right)}❘} = {❘\frac{B\left( e^{i\omega} \right)}{A\left( e^{i\omega} \right)}❘}$

of the transfer function of the axes of these devices may be considered, in a rather wide frequency range, as being that of a dual integrator, that is to say with a decrease of 40 dB/decade, and the corresponding transfer function has in this frequency range a quasi-constant phase of −180°. On the other hand, at low rotation frequency, the gain of this transfer function deviates from this very simple model with a model slope that tends to decrease by only 20 dB/decade, due to the viscous frictions. Moreover, at high frequency, resonances and anti-resonances appear, which also change the decrease of the transfer function gain.

By way of example, FIG. 5 shows an example of Bode diagram of the transfer function

${G(z)} = \frac{B(z)}{A(z)}$

of such a device as well as the minimum frequencies ω_(low) and ω_(high) between which the transfer function of these devices has substantially the properties of that of a dual integrator.

Therefore, under the hypothesis that the fundamental frequency kω_(r), kϵ

, 1≤k≤N_(l) (ω_(r)) and the harmonics of the torque undulations are in the range [ω_(low), ω_(high)], it may be considered that the torque undulation/“cogging” d_(m)(t) affects y(t) by the effect of a filtering of a dual integrator.

Let's call y_(T)(t) the torque undulations/“cogging” effect to which is added the attached coder disturbance effect on the position measurement for constant speeds of rotation such as ω_(low)≤kω_(r)≤ω_(high), kϵ

, 1≤k≤N_(l), then the measured position can be modelled (assuming a constant or quasi-constant speed):

y _(m)(t)=y _(T)(t)+ y (t)+d″(t)  (10)

where y(t) would be the physical position of the motor if not disturbed by the torque undulations, and d″(t) a term of centred disturbances and with:

$\begin{matrix} {{y_{T}(t)} \approx {{\sum_{k = 1}^{N_{l}}{\frac{\alpha_{k}^{\prime}}{\left( {k\omega_{r}} \right)^{2}}{\cos\left( {y(t)} \right)}}} + {\frac{\beta_{k}^{\prime}}{\left( {k\omega_{r}} \right)^{2}}{\sin\left( {y(t)} \right)}} + {\sum_{k = 1}^{N}\left\lbrack {{a_{k}{\cos\left( {y(t)} \right)}} + {b_{k}{\sin\left( {y(t)} \right)}}} \right\rbrack}}} & (11) \end{matrix}$

It is hence seen that, at constant axis speed setpoint, there exists a linear relationship involving the coefficients a_(k),b_(k),α′_(k),β′_(k), which may be written:

y _(m)(t)=φ(t)θ+ y (t)+d″(t)  (12)

the term d″(t) being a centred disturbance term and with:

${\varphi(t)} = \left\lbrack {{\cos\left( {y(t)} \right)}{\sin\left( {y(t)} \right)}{\cos\left( {2{y(t)}} \right)}{\sin\left( {2{y(t)}} \right)}\ldots\ldots\frac{1}{\left( \omega_{r} \right)^{2}}{\cos\left( {y(t)} \right)}\frac{1}{\left( \omega_{r} \right)^{2}}{\sin\left( {y(t)} \right)}\frac{1}{\left( {2\omega_{r}} \right)^{2}}{\cos\left( {2{y(t)}} \right)}\frac{1}{\left( {2\omega_{r}} \right)^{2}}{\sin\left( {2{y(t)}} \right)}\ldots} \right\rbrack$

which is approximated by (due to the small deviation between y_(m)(t) and y(t) and to the quasi-constant nature of the axis speed):

$\begin{matrix} {{\varphi(t)} = \left\lbrack {{\cos\left( {y_{m}(t)} \right)}{\sin\left( {y_{m}(t)} \right)}{\cos\left( {2{y_{m}(t)}} \right)}{\sin\left( {2{y_{m}(t)}} \right)}\cdots\cdots\frac{1}{\left( \omega_{r} \right)^{2}}{\cos\left( {y_{m}(t)} \right)}\frac{1}{\left( \omega_{r} \right)^{2}}{\sin\left( {y_{m}(t)} \right)}\frac{1}{\left( {2\omega_{r}} \right)^{2}}\left( {2{y_{m}(t)}} \right)\frac{1}{\left( {2\omega_{r}} \right)^{2}}{\sin\left( {2{y_{m}(t)}} \right)}\cdots} \right\rbrack} & (13) \end{matrix}$ and $\begin{matrix} {\theta^{T} = \left\lbrack {a_{1}b_{1}a_{2}b_{2}\cdots\alpha_{1}^{\prime}\beta_{1}^{\prime}\alpha_{2}^{\prime}\beta_{2}^{\prime}\cdots} \right\rbrack} & (14) \end{matrix}$

which is a vector of parameters characterizing the coder errors and the torque undulations.

Moreover, a centred position measurement of y_(m)(t) noted y′(t) can be defined, with:

$\begin{matrix} {{y_{m}^{\prime}(t)} = {{y_{m}(t)} - {y_{c}(t)} - {\frac{Te}{t_{\max}}{\sum\limits_{t = 0}^{t_{\max}}\left( {{y_{m}(t)} - {y_{c}(t)}} \right)}}}} & (15) \end{matrix}$

where it is reminded that y_(c)(t) is the position setpoint provided to the control and the right term is a mean of the deviations between y_(m)(t) and y_(c)(t), this subtraction having for object to ensure that y′_(m)(t) is centred. Moreover, t_(max) is the final time of the test, Te is the duration of each sampling period.

In which case, it may finally be written:

y _(m)(t)=φ(t)θ+d′″(t)  (16)

where d′″(t) is a centred disturbance term.

For a single constant rotation speed, indexed j, ω_(rj), by concatenation, a matrix relationship may be written between the position measurement and a function of parameters characterizing the coder errors and the torque undulations:

$\begin{matrix} {Y_{j} = {{\phi_{j}\theta} + D_{j}}} & (17) \\ {{{with}\phi_{j}} = {{\begin{bmatrix} {\varphi(0)} \\ {\varphi(1)} \\  \vdots \\ {\varphi\left( t_{f} \right)} \end{bmatrix}Y_{j}} = \begin{bmatrix} {y_{m}^{\prime}(0)} \\ {y_{m}^{\prime}(1)} \\  \vdots \\ {y_{m}^{\prime}\left( t_{f} \right)} \end{bmatrix}}} & (18) \end{matrix}$

In a particular embodiment, the components of φ(t) in the relationship (13) may be subjected to a filtering that may be high-pass or low-pass or band-pass. In such an embodiment, the components y′_(m)(t) are then subjected to the same filtering.

All the harmonics are taken into account in the constitution of the vectors φ(t) of formula (13) and θ of formula (14), but in alternative embodiments, certain intermediate harmonics may be omitted in the constitution of the vectors φ(t) and θ.

It can be observed that, due to the expression of φ(t) given in (13), the matrix ϕ_(j) is not full column rank. Which concretely means that the vector θ is not identifiable if only one test of the system is made at a single constant speed ω_(rj).

As a consequence, it is preferable to make multiple tests of the system at different constant speeds ω_(r1), ω_(r2), ω_(r3) . . . ω_(rn), the choice of the speeds being constraint by ω_(low)≤kω_(rj)≤ω_(high) for 1≤k≤N_(l), j being an integer belonging to [1 . . . n] and n being the number of tests at different constant speeds. Preferably, n>=2.

The number N_(l) is preferably identical for the different constant speeds. For all the different constant speeds, the harmonic of maximum rank considered in the calculations may hence be lower than or equal to the maximum frequency ω_(high).

The test may possibly be repeated several times for a given constant speed but the tests must be repeated for several different constant speeds to obtain the identifiability. It is reminded that, in the case of the position setpoint example, this corresponds to ramp setpoints whose duration may be perfectly controlled by the user and allows a high number of rotations. Preferably, during the test, the measurements for the tests are started after a certain time after the start of the ramp to avoid measuring start-up transients and that the speed is stabilized, it is also possible to start from an already-established higher or lower speed rotation to reach the test speed of rotation, in order to reduce the speed stabilisation time.

By concatenation of the vectors Y; and the matrices p, after these multiple tests at different fundamental frequencies of rotation, a whole linear relationship is obtained:

Y=ϕθ+D  (19)

with:

$\begin{matrix} {Y = {{\begin{bmatrix} Y_{1} \\ Y_{2} \\  \vdots \\ Y_{n} \end{bmatrix}\phi} = \begin{bmatrix} \phi_{1} \\ \phi_{2} \\  \vdots \\ \phi_{n} \end{bmatrix}}} & (20) \end{matrix}$

Thereafter, the estimation of θ, called {circumflex over (θ)}, is calculated using the least squares relationship according to the well-known formula:

{circumflex over (θ)}=(ϕ^(T)ϕ)⁻¹ϕ^(T) Y  (21)

In practice, it is preferable to perform a certain number of tests at constant speed setpoint, and with more that two constant speeds in order to improve the identifiability of the parameters and reduce the uncertainties on {circumflex over (θ)}.

The interest of the method is that the number of tests at constant speed can be multiplied (the tests can be repeated at a same frequency, hence with a same position setpoint ramp and/or different speeds, hence with different position setpoint ramps), and it is also possible to make these tests last as long as desired, in order to increase significantly the information available and to hence reduce the uncertainties on the estimated parameters.

Once the vector {circumflex over (θ)} has been estimated, a coder error compensation calculation block can hence be elaborated, whose input is y_(m)(t) and whose output is a compensated position y_(mc)(t), with the relationship

y _(mc)(t)=−Σ_(k=1) ^(N) a _(k) cos(y _(m)(t))+b _(k) sin(y _(m)(t))  (22)

and y_(mc)(t) being the compensated position measurement signal, which is injected upstream from the corrector C(q) for subtraction from y_(c)(t), such as in the system shown in FIG. 6 .

The compensation may be implemented directly, with calculations in real time, from the analytic formula (22), or from compensation tables, previously obtained with the method of the invention, on a mesh of angular positions with preferentially interpolation between the mesh points, the latter solution limiting the calculations to searches in the compensation tables and preferably to interpolations.

It is important to note once again that the “opening of the system loop” at certain frequencies is not a physical/material operation because the system remains always looped/controlled during the tests, but is the result of a calculation method making it possible to estimate parameters obtained from the vector {circumflex over (θ)}. To obtain this immaterial “opening” of the looped system at certain frequencies, during the tests, the system is placed in a range of speeds of rotation of the rotation actuator in which it acts as a dual integrator, that is to say that the curve of the transfer function gain of the actuator has a decrease of substantially 40 dB/decade, which “opens” the system, and tests of the system are performed at several constant speeds of rotation in this range.

A second embodiment in which the compensation table to be used in the system of FIG. 6 is now determined by iteration will now be described. This second embodiment consists in iterating the test and the above-described calculation of {circumflex over (θ)}, using the results of the preceding iterations.

For that purpose, a first estimated vector {circumflex over (θ)}₁ is calculated by the procedure described hereinabove, after which the first compensation obtained by this first calculation is introduced into the system and a second series of tests is made, always at constant speeds, with the system including the first compensation. A second estimated vector {circumflex over (θ)}₂ is then obtained by calculation, and a compensation which is established on the vector {circumflex over (θ)}₁+{circumflex over (θ)}₂ is introduced into the system for potential other tests or for the use of the system in metrology, for example. This iterative procedure of tests and calculations of estimated vector {circumflex over (θ)}₃, {circumflex over (θ)}₄ . . . can be continued, making it possible to establish vectors {circumflex over (θ)}₁+{circumflex over (θ)}₂+{circumflex over (θ)}₃ . . . for the compensation calculation block. The iteration may be stopped after a determined number of iterations or a stop criterion may be set, based on the value of the vector estimated during the current iteration, the later having converging values.

It is understood that, within the framework of this iteration method, the previous determination of the range [ω_(low), ω_(high)] is performed only once and does not need to be repeated at each iteration of the phases of tests and calculation of the parameters characterizing the coder errors and the torque undulations by solving the whole matrix relationship.

A description will now be made of an alternative embodiment of calculation of the estimation of θ, called {circumflex over (θ)}, which does not use the least squares formula but uses a regularisation method that consists in determining {circumflex over (θ)} using the following calculation:

{circumflex over (θ)}=(ϕ^(T) ϕ+H)⁻¹ϕ^(T) y  (23)

where H is a square matrix defined positive of the size of ϕ^(T)ϕ. This way to proceed has for drawback to add bias to the estimates {circumflex over (θ)}, but, in certain cases, it may contribute to reduce the variance of the coefficients of {circumflex over (θ)} and hence the uncertainties in the position compensation.

In another alternative, the corrector synthesis method making it possible to “open the loop” at the frequencies of interest may be carried out differently than the pole placement method developed hereinabove. In particular, a H-infinity control can be implemented.

In a particular embodiment of the invention, the vector θ can be determined according to the procedure described hereinabove and using coder position error measurements obtained by an optical measurement method and in such a way that these optical measurements made over a finite number of positions is hybridized with the data collected and gathered in the vector Y. This optical method of coder position error measurement uses interferometry and can hence be very accurate. Under the hypothesis that n_(p) measurements of coder error e_(i) for iϵ[1, . . . n_(p)] have been made by means of the optical measurement method, here for n_(p) positions of the axis denoted y*_(i), iϵ[1 . . . n_(p)], these measured errors can be gathered in a vector

$E_{c} = {\begin{bmatrix} e_{1} \\ e_{2} \\  \vdots \\ e_{n_{p}} \end{bmatrix}.}$

A matrix C of size (n_(p), 2(N_(l)+N)) may be constructed, in such a way that

$C = \begin{bmatrix} {\cos\left( y_{1}^{*} \right)} & {\sin\left( y_{1}^{*} \right)} & \cdots & {\cos\left( {Ny}_{1}^{*} \right)} & {\sin\left( {Ny}_{1}^{*} \right)} & 0_{1,N_{l}} \\  \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {\cos\left( y_{n_{p}}^{*} \right)} & {\sin\left( y_{n_{p}}^{*} \right)} & \cdots & {\cos\left( {Ny}_{n_{p}}^{*} \right)} & {\cos\left( {Ny}_{n_{p}}^{*} \right)} & 0_{1,N_{l}} \end{bmatrix}$

It is reminded that N_(l) is the maximum rank of the harmonics modelling the torque undulations and N the maximum harmonic rank of a decomposition into Fourier series of the coder errors (see equations 1, 2, 7 and 22).

In C, 0_(1,N) _(l) is a matrix of one row and N_(l) columns.

As the uncertainties on the optical measurements can be made very small, they can be neglected, in which case, the following equality is valid: E_(c)=Cθ.

The estimation of θ is then a problem of minimization of a quadratic criterion

J=(Y−ϕθ)^(T)(Y−ϕθ)

under the following equality constraint:

E _(c) =Cθ

The solution of this problem is classical in numerical analysis (using the Lagrangian). The interest of this method being to guarantee that the estimate of the coder error due to the procedure coincide perfectly with the optical measurement at a finite number of points.

Finally, it is understood that the invention can also be applied to linear/translation actuators in the case where said actuator comprises a controlled rotary member and a rotation sensor and that the rotation motion is converted into a translation motion. 

1. A method for estimating angular errors of angle coders for a looped system including at least one actuator for rotating an axis and an angle coder a signal of position measurement of said axis, and including a calculation device for at least controlling said actuator, the calculation device receiving, on the one hand, a setpoint signal at the system input, and, on the other hand, the measurement signal, for looping the system, the rotation actuator generating torque undulations d_(m)(t), the coder producing coder errors d_(c)(t) which, for a setpoint signal y_(c)(t) that corresponds to a rotation of the axis at a speed ω_(r) supposed to be constant, have a spectrum consisted of the fundamental rotation frequency or and its harmonics kω_(r), kϵ

, the calculating device calculating a command signal in a corrector, wherein, in a test phase, for a speed of rotation indexed j, θ_(rj), supposed to be constant, a specific corrector C_(θ) _(rj) (q) of said constant speed of rotation θ_(rj) is synthesized, said corrector C_(ω) _(rj) (q) being such that, for the frequency domain comprising the fundamental frequency θ_(rj) and a determined number of its first harmonics kω_(rj), kϵ

, 1<k≤N_(l), the corrector having a substantially zero gain at theses frequencies ω_(rj), kω_(rj), which causes an opening of the loop at said frequencies, and a matrix relationship is established between the position measurements and a function of parameters characterizing the coder errors and the torque undulations, on the system with the specific corrector and at the constant speed of rotation ω_(rj), the test phase is repeated a determined number n of times with different setpoints of rotation at speed ω_(rj) supposed constant, where, jϵ

, 1<j≤n, the matrix relationships are concatenated in order to obtain an identifiable global matrix relationship, the parameters characterizing the coder errors and the torque undulations are estimated by solving the global matrix relationship.
 2. The method according to claim 1, wherein, moreover, once estimated the parameters characterizing the coder errors and the torque undulations, the calculation device is configured for the execution in real time of the calculation of a coder error compensation signal in order to compensate for the coder errors.
 3. The method according to claim 1, wherein a range [ω_(low), ω_(high)] of rotation frequency of the actuator in which the axis transfer function module has a decrease of substantially 40 dB/decade is previously determined, and in the test phases, the different rotation speeds ω_(rj) are further chosen in such a way that each constant rotation speed ω_(rj) and its N_(l) harmonics kω_(rj) are in the range [ω_(low), ω_(high)].
 4. The method according to claim 3, wherein the range [ω_(low), ω_(high)] of rotation frequency of the actuator in which the axis transfer function has a decrease of substantially 40 dB/decade is determined by a method chosen among: a graphical method using the curve of the gain ${G\left( e^{i\omega} \right)} = {❘\frac{B\left( e^{i\omega} \right)}{A\left( e^{i\omega} \right)}❘}$ of the axis transfer function and a lower limit ω_(low) and an upper limit ω_(high) of frequencies surrounding an area of the curve having a decrease of substantially 40 dB/decade are determined, an identification method.
 5. The method according to claim 1, wherein, in the test phase, the setpoint at the system input is a ramp position setpoint signal y_(c)(t), or a constant speed setpoint signal.
 6. The method according to claim 1, wherein the corrector is synthetized either by a mixed-sensitivity method on a H-infinity control, or by a robust pole placement method on RST corrector.
 7. The method according to claim 1, wherein the matrix relationship between the position measurements and a function of parameters characterizing the coder errors and the torque undulations is expressed by: ${Y_{j} = {{\phi_{j}\theta} + D_{j}}}{{{with}\phi_{j}} = {{\begin{bmatrix} {\varphi(0)} \\ {\varphi(1)} \\  \vdots \\ {\varphi\left( t_{f} \right)} \end{bmatrix}Y_{j}} = \begin{bmatrix} {y_{m}^{\prime}(0)} \\ {y_{m}^{\prime}(1)} \\  \vdots \\ {y_{m}^{\prime}\left( t_{f} \right)} \end{bmatrix}}}$ where Y_(j) is a vector of centred position measurement of coefficients y′_(m)(t), and ${\varphi(t)} = {{\left\lbrack {{\cos\left( {y_{m}(t)} \right)}{\sin\left( {y_{m}(t)} \right)}{\cos\left( {2{y_{m}(t)}} \right)}{\sin\left( {2{y_{m}(t)}} \right)}\cdots\cdots\frac{1}{\left( \omega_{r} \right)^{2}}{\cos\left( {y_{m}(t)} \right)}\frac{1}{\left( \omega_{r} \right)^{2}}{\sin\left( {y_{m}(t)} \right)}\frac{1}{\left( {2\omega_{r}} \right)^{2}}\left( {2{y_{m}(t)}} \right)\frac{1}{\left( {2\omega_{r}} \right)^{2}}{\sin\left( {2{y_{m}(t)}} \right)}\cdots} \right\rbrack{and}\theta^{T}} = \left\lbrack {a_{1}b_{1}a_{2}b_{2}\cdots\alpha_{1}^{\prime}\beta_{1}^{\prime}\alpha_{2}^{\prime}\beta_{2}^{\prime}\cdots} \right\rbrack}$ a transposed vector of the parameters characterizing the coder errors and the torque undulations, and D_(j) a vector of centred disturbance terms.
 8. The method according to claim 7, wherein the components φ(t) of ϕ_(j) and the components y′_(m)(t) of Y_(j) are filtered, wherein the filtering can be high-pass or low-pass or band-pass.
 9. The method according to claim 7, wherein the identifiable whole matrix relationship Y=ϕθ+D with: $Y = {{\begin{bmatrix} Y_{1} \\ Y_{2} \\  \vdots \\ Y_{n} \end{bmatrix}\phi} = \begin{bmatrix} \phi_{1} \\ \phi_{2} \\  \vdots \\ \phi_{n} \end{bmatrix}}$ is used to produce an estimation {circumflex over (θ)} of the parameters characterizing the coder errors and the torque undulations by linear regression and application of a least squares relationship according to {circumflex over (θ)}=(ϕ^(T)ϕ)⁻¹ϕ^(T)Y.
 10. The method according to claim 7, wherein the identifiable whole matrix relationship Y=ϕθ+D with: $Y = {{\begin{bmatrix} Y_{1} \\ Y_{2} \\  \vdots \\ Y_{n} \end{bmatrix}\phi} = \begin{bmatrix} \phi_{1} \\ \phi_{2} \\  \vdots \\ \phi_{n} \end{bmatrix}}$ is used to produce an estimation {circumflex over (θ)} of the parameters characterizing the coder errors and the torque undulations and with a regularization method using the following relationship: {circumflex over (θ)}=(ϕ^(T) ϕ+H)⁻¹ ϕY where H is a square matrix defined positive of the size of ϕ^(T)ϕ.
 11. The method according to claim 7, wherein an interferometric optical measurement method is implemented for measuring the coder position errors, said measurements being made on a finite number n_(p) of positions of the axis, and wherein the estimation {circumflex over (θ)} of the parameters characterizing the coder errors and the torque undulations is obtained by minimizing a quadratic criterion J=(Y−ϕθ)^(T)(Y−ϕθ) under the equality constraint E_(c)=Cθ, where C is a matric such that $C = \begin{bmatrix} {\cos\left( y_{1}^{*} \right)} & {\sin\left( y_{1}^{*} \right)} & \cdots & {\cos\left( {Ny}_{1}^{*} \right)} & {\sin\left( {Ny}_{1}^{*} \right)} & 0_{1,N_{l}} \\  \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {\cos\left( y_{n_{p}}^{*} \right)} & {\sin\left( y_{n_{p}}^{*} \right)} & \cdots & {\cos\left( {Ny}_{n_{p}}^{*} \right)} & {\cos\left( {Ny}_{n_{p}}^{*} \right)} & 0_{1,N_{l}} \end{bmatrix}$ y*_(i) corresponding to the n_(p) measurement positions on the axis, iϵ[1, . . . n_(p)], and N being the maximum harmonic rank of a Fourier series decomposition of the coder errors.
 12. The method according to claim 9, wherein a calculation device is implemented, which is configured for the execution in real time, in a compensation calculation block, of the calculation of a coder error compensation signal in order to compensate for the coder errors, and the calculation device is configured to take into account in real time the torque undulations, and wherein the estimation {circumflex over (θ)} of the vector θ of the parameters characterizing the coder errors and the torque undulations is calculated by iteration: after a first repetition of test phases and a first calculation of the parameters characterizing the coder errors and the torque undulations by solving the global matrix relationship, a first estimated vector {circumflex over (θ)}₁ is estimated, the coder error compensation signal being then calculated and the torque undulations being then taken into account on the basis of said first estimated vector {circumflex over (θ)}₁, a new repetition of test phases and a new calculation of the parameters characterizing the coder errors and the torque undulations by solving the global matrix relationship are performed on the system so-compensated on the basis of the first estimated vector {circumflex over (θ)}₁, a new estimated vector {circumflex over (θ)}₂ being estimated, the coder error compensation signal being then calculated and the torque undulations being then taken into account on the basis of the sum of the previous estimated vector {circumflex over (θ)}₁ and the new estimated vector {circumflex over (θ)}₂, and subsequent iterations are performed on the compensated system on the basis of the sum of the previous estimated vectors {circumflex over (θ)}₁+{circumflex over (θ)}₂+{circumflex over (θ)}₃ . . . .
 13. The method according to claim 1, wherein the number N_(l) of harmonics kω_(rj) is identical for the n tests with rotation setpoints at different speeds ω_(rj).
 14. The method according to claim 1, wherein certain harmonics kω_(rj) are omitted for the estimation of the parameters characterizing the coder errors and the torque undulations.
 15. A device having at least one rotary axis, said device being a motion simulator or a centrifuge and including a looped system including at least one actuator for rotating the axis and an angle coder producing a position measurement signal of said axis, and including a calculation device for at least controlling said actuator, and including a calculation device for at least controlling said actuator, the calculation device receiving, on the one hand, a setpoint signal at the system input, and, on the other hand, the measurement signal, for looping the system, the rotation actuator generating torque undulations d_(m)(t), the coder producing coder errors d_(c)(t) which, for a setpoint signal y_(c)(t) that corresponds to a rotation of the axis at a speed ω_(r) supposed to be constant, have a spectrum consisted of the fundamental rotation frequency ω_(r) and its harmonics kω_(r), kϵ

, the calculation device further calculating a command signal in a corrector, the calculation device being configured to execute the method according to claim
 1. 16. The method according to claim 10, wherein a calculation device is implemented, which is configured for the execution in real time, in a compensation calculation block, of the calculation of a coder error compensation signal in order to compensate for the coder errors, and the calculation device is configured to take into account in real time the torque undulations, and wherein the estimation {circumflex over (θ)} of the vector θ of the parameters characterizing the coder errors and the torque undulations is calculated by iteration: after a first repetition of test phases and a first calculation of the parameters characterizing the coder errors and the torque undulations by solving the global matrix relationship, a first estimated vector {circumflex over (θ)}₁ is estimated, the coder error compensation signal being then calculated and the torque undulations being then taken into account on the basis of said first estimated vector {circumflex over (θ)}₁, a new repetition of test phases and a new calculation of the parameters characterizing the coder errors and the torque undulations by solving the global matrix relationship are performed on the system so-compensated on the basis of the first estimated vector {circumflex over (θ)}₁, a new estimated vector {circumflex over (θ)}₂ being estimated, the coder error compensation signal being then calculated and the torque undulations being then taken into account on the basis of the sum of the previous estimated vector {circumflex over (θ)}₁ and the new estimated vector {circumflex over (θ)}₂, and subsequent iterations are performed on the compensated system on the basis of the sum of the previous estimated vectors {circumflex over (θ)}₁+{circumflex over (θ)}₂+{circumflex over (θ)}₃ . . . .
 17. The method according to claim 11, wherein a calculation device is implemented, which is configured for the execution in real time, in a compensation calculation block, of the calculation of a coder error compensation signal in order to compensate for the coder errors, and the calculation device is configured to take into account in real time the torque undulations, and wherein the estimation {circumflex over (θ)} of the vector θ of the parameters characterizing the coder errors and the torque undulations is calculated by iteration: after a first repetition of test phases and a first calculation of the parameters characterizing the coder errors and the torque undulations by solving the global matrix relationship, a first estimated vector {circumflex over (θ)}₁ is estimated, the coder error compensation signal being then calculated and the torque undulations being then taken into account on the basis of said first estimated vector {circumflex over (θ)}₁, a new repetition of test phases and a new calculation of the parameters characterizing the coder errors and the torque undulations by solving the global matrix relationship are performed on the system so-compensated on the basis of the first estimated vector {circumflex over (θ)}_(i) a new estimated vector {circumflex over (θ)}₂ being estimated, the coder error compensation signal being then calculated and the torque undulations being then taken into account on the basis of the sum of the previous estimated vector {circumflex over (θ)}₁ and the new estimated vector {circumflex over (θ)}₂, and subsequent iterations are performed on the compensated system on the basis of the sum of the previous estimated vectors {circumflex over (θ)}₁+{circumflex over (θ)}₂+{circumflex over (θ)}₃ . . . .
 18. The method according to claim 8, wherein the identifiable whole matrix relationship Y=ϕθ+D with: $Y = {{\begin{bmatrix} Y_{1} \\ Y_{2} \\  \vdots \\ Y_{n} \end{bmatrix}\phi} = \begin{bmatrix} \phi_{1} \\ \phi_{2} \\  \vdots \\ \phi_{n} \end{bmatrix}}$ is used to produce an estimation {circumflex over (θ)} of the parameters characterizing the coder errors and the torque undulations by linear regression and application of a least squares relationship according to {circumflex over (θ)}=(ϕ^(T)ϕ)⁻¹ϕ^(T)Y.
 19. The method according to claim 8, wherein the identifiable whole matrix relationship Y=ϕθ+D with: $Y = {{\begin{bmatrix} Y_{1} \\ Y_{2} \\  \vdots \\ Y_{n} \end{bmatrix}\phi} = \begin{bmatrix} \phi_{1} \\ \phi_{2} \\  \vdots \\ \phi_{n} \end{bmatrix}}$ is used to produce an estimation {circumflex over (θ)} of the parameters characterizing the coder errors and the torque undulations and with a regularization method using the following relationship: {circumflex over (θ)}=(ϕ^(T) ϕ+H)⁻¹ϕ^(T) Y where H is a square matrix defined positive of the size of ϕ^(T)ϕ.
 20. The method according to claim 8, wherein an interferometric optical measurement method is implemented for measuring the coder position errors, said measurements being made on a finite number n_(p) of positions of the axis, and wherein the estimation {circumflex over (θ)} of the parameters characterizing the coder errors and the torque undulations is obtained by minimizing a quadratic criterion J=(Y−ϕθ)^(T)(Y−ϕθ) under the equality constraint E_(c)=Cθ, where C is a matric such that $C = \begin{bmatrix} {\cos\left( y_{1}^{*} \right)} & {\sin\left( y_{1}^{*} \right)} & \cdots & {\cos\left( {Ny}_{1}^{*} \right)} & {\sin\left( {Ny}_{1}^{*} \right)} & 0_{1,N_{l}} \\  \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {\cos\left( y_{n_{p}}^{*} \right)} & {\sin\left( y_{n_{p}}^{*} \right)} & \cdots & {\cos\left( {Ny}_{n_{p}}^{*} \right)} & {\cos\left( {Ny}_{n_{p}}^{*} \right)} & 0_{1,N_{l}} \end{bmatrix}$ y*_(i) corresponding to the n_(p) measurement positions on the axis, iϵ[1, . . . n_(p)], and N being the maximum harmonic rank of a Fourier series decomposition of the coder errors. 